Fallo en código de "rastreo"

Tengo este código:
$nombre= $_POST[nombre];
$email= $_POST[email];
// Conectamos a la base de datos 
$connect=mysql_connect("localhost","xxxxxx_usuario", "xxxxx");
// Seleccionamos la base de datos
mysql_select_db("xxxxxx",$connect);
if (!$nombre || !$email) {
echo "All fields are required";
}
else {
$sql = "select * from fernando_pedidos where nombre = $nombre and email = $email";
$resultados = mysql_query($sql,$db);
$row = mysql_fetch_array($resultados))
$resul= "$row[seguimiento]";
echo "$resul";
}

Y me da este error:
Parse error: syntax error, unexpected ')' in /home/fernando/public_html/pedidos/forggot.php on line 21

La line 21 es:
$row = mysql_fetch_array($resultados))
He probado con
$row = mysql_fetch_array($resultados));
Pero no funciona... ¿Alguna idea?
Hola de nuevo: simplemente te sobra un paréntesis; $row = mysql_fetch_array( $resultados ) ); // Ese paréntesis sobra. A todo esto, ¿que contiene la variable $db? La función mysql_query( $parametro1, [$parametro2] ); solo recibe 2 parámetros: $parametro1 es la sentencia SQL y el parametro2 es la conexión con la base de datos. En tu caso, deberías pasarle las variables $sql y $connect, así: mysql_query( $sql, $connect );.

Saludos.
Pues no se que contiene $db... lo copié de otra pagina.. pensaba cambiarlo.. pero o me di cuenta.. Ya decia yo que me faltaba.. pero no se por que escribí yo hay eso. Muchas garcias , y gracia stambien por la paciencia hehe
Aquí habría que empezar por publicar el error. Además, hay varias cosas que no sé que son, como $seguimiento. También $registro = mysql_fetch_array( pedidos ) esta mal, puesto que pedidos no es una sentencia SQL ni tampoco una variable. Publica los valores que se pasan al archivo y que pretendes hacer con ellos, así sabre que corregir :D.

Saludos y no te preocupes por preguntar, es peor quedarse con las dudas.
Ok. Lo que yo la sabia de antemano es que:
$registro = mysql_fetch_array(pedidos)
{
    echo 'Your code is: ' . $registro['seguimiento'] . ' ';
}
Estaba mal... Pero a lo mejor la diosa SQL me hacia un milagro y lo aceptaba.

Lo que quiero es:
Un usuario, pone en otra página un codigo de seguimiento que se le otorga al hacer una cosa (Ya completado) Ahora, quiero que al poner ese numero, salga si el "pedido" a sido aceptado, denegado, o si se está "investigando".

Para que lo veais:
http://www.fernandosalcedo.com/pedidos/

(La web us de un usuario de CCTW, que le estoy ayudando... yo no me puedo permitir comprar un hosting haha)

Hay puedes ver tu codigo de rastreo, crar uno nuevo, o recuperar uno olvidado.

El error me lo da al poner un codigo. He creado uno para demostracion:

Para ver lo que pone en el index (Y el fallo que hay en show.php)

Codigo:
00000

Para el forggot password:

Codigo
00000

Nombre
Demo

Si necesitais el codigo de algunas paginas, decirmelo.
Pongo las que estan en php.
Aqui la de new.php
Funciona
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
$seguimiento= $_POST[seguimiento];
$nombre= $_POST[nombre];
$direccion= $_POST[direccion];
$email= $_POST[email];
$telefono= $_POST[telefono];
// Conectamos a la base de datos 
$connect=mysql_connect("localhost","fernando_usuario", "a1234b");
// Seleccionamos la base de datos
mysql_select_db("fernando_pedidos",$connect);
if (!$nombre || !$direccion || !$email || !$telefono) {
echo "All fields are required";
header("location: new.html");
}
else {
mysql_query ("INSERT INTO `fernando_pedidos`.`pedidos`(`seguimiento`, `nombre`, `direccion`, `email`, `telefono`) VALUES ('$_POST[seguimiento]', '$_POST[nombre]', '$_POST[direccion]', '$_POST[email]', '$_POST[telefono]')");
echo "Your id tracer is: <strong>$seguimiento</strong> . Remember this number and put it <a href='index.html'>here</a> to see how are your order";
}
?>
</body>
</html>
News.php (Que no news de noticias si no news de nuevos hehe)
(Funciona)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
echo "<form action='new.php' method='post'>";
$nseguimiento= rand(0,99999);
echo "<input type='hidden' name='seguimiento' value='$nsiguimiento' /><br/>";
echo "Name: <input type='text' name='nombre' value='' /><br/>";
echo "Adress: <input type='text' name='direccion' value='' /><br/>";
echo "Email: <input type='text' name='email' value='' /><br/>";
echo "Phone Number: <input type='text' name='telefono' value='' /><br/>";
echo "<input type='submit' value='Submit' name='Submit' />";
echo "<input type='reset' value='Reset' name='Reset' /><br/>";
echo "</form>";
echo "<p>All fields are required</p>";
?>
</body>
</html>
Forggot.php
(No funciona)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
$nombre= $_POST[nombre];
$email= $_POST[email];
// Conectamos a la base de datos 
$connect=mysql_connect("localhost","fernando_usuario", "a1234b");
// Seleccionamos la base de datos
mysql_select_db("fernando_pedidos",$connect);
if (!$nombre || !$email) {
echo "All fields are required";
}
else {
$sql = "select * from fernando_pedidos where nombre = $nombre and email = $email";
$resultados = mysql_query($sql,$connect);
$row = mysql_fetch_array($resultados)
$resul= "$row['seguimiento']";
echo "$resul";
}
?>

</body>
</html>
Y show.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
$seguimiento= $_POST[seguimiento];
if (!$seguimiento) {
echo "All fields are required";
}
else 
{
$conexion = mysql_connect("localhost","fernando_usuario", "a1234b"); // se conecta con el servidor
mysql_select_db('fernando_pedidos', $conexion); // selecciona la base de datos
$tabla = mysql_query("SELECT seguimiento FROM pedidos"); // selecciono todos los registros de la tabla usuarios, ordenado por nombre
$registro = mysql_fetch_array(pedidos)
{
    echo 'Your code is: ' . $registro['seguimiento'] . ' ';
}
mysql_free_result($tabla);
mysql_close($conexion);
?>
</body>
</html>

(Yo me lio con tanto código.. no se como coñ* lo he escrito haha)
Ok, lo que esta mal o se puede mejorar es:

Forgot.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
  $nombre= $_POST[nombre];
  $email= $_POST[email];
  if (!$nombre || !$email) {
    echo "All fields are required"; // Se comprueba antes de hacer cualquier cosa, así no se utilizan recursos extras sin razón.
  }
  else {
    // Conectamos a la base de datos 
    $connect=mysql_connect("localhost","fernando_usuario", "a1234b");
    // Seleccionamos la base de datos
    mysql_select_db("fernando_pedidos",$connect);
    $sql = "select * from fernando_pedidos where nombre = $nombre and email = $email";
    $resultados = mysql_fetch_array( mysql_query( $sql, $connect ) );
    echo "<p>" . $resultados['seguimiento'] . "</p>";
  }
?>
</body>
</html>

Lo anterior solo muestra los resultados de la base de datos (la columna seguimiento, para ser más específicos). En cuanto a show.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
$seguimiento= $_POST[seguimiento];
if (!$seguimiento) {
echo "All fields are required";
}
  else 
  {
    $conexion = mysql_connect("localhost","fernando_usuario", "a1234b"); // se conecta con el servidor
    mysql_select_db('fernando_pedidos', $conexion); // selecciona la base de datos
    $sql = "SELECT seguimiento FROM pedidos WHERE seguimiento = $seguimiento"; // Creo que esta debería ser la consulta correcta
    $tabla = mysql_query( $sql );

    if( $tabla ) { // Si existe alguna coincidencia se muestra el código (aunque creo que en base al código deberías mostrar el estado, no el mismo código XD).
      $registro = mysql_fetch_array( $tabla );
      echo "<p>Your code is: " . $registro['seguimiento'] . "</p>";
    }
    else { // Si no existen coincidencias:
      echo "<p>The entered code does not exists</p>";
    }
  }
  mysql_free_result($tabla);
  mysql_close($conexion);
?>
</body>
</html>

Intenta con eso, suerte :D.
Ya se que no se deberia mostrar el codigo, pero fue un erro al hacer copy and paste. Ok, veo los siguientes errores:

He modificado un poco el codigo para que diga el estado. Pero hay:
Lo he dejado tal que:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
$seguimiento= $_POST[seguimiento];
if (!$seguimiento) {
echo "All fields are required";
}
  else 
  {
    $conexion = mysql_connect("localhost","fernando_usuario", "a1234b"); // se conecta con el servidor
    mysql_select_db('fernando_pedidos', $conexion); // selecciona la base de datos
    $sql = "SELECT seguimiento FROM pedidos WHERE seguimiento = $seguimiento"; // Creo que esta debería ser la consulta correcta
    $tabla = mysql_query( $sql );

    if( $tabla ) { // Si existe alguna coincidencia se muestra el código (aunque creo que en base al código deberías mostrar el estado, no el mismo código XD).
      $registro = mysql_fetch_array( $tabla );
			switch ($registro['estado'])
			{
			case 1: $estado="Acceptted"; break;
			case 2: $estado="Cancelled"; break;
			case 3: $estado="Looking"; break;
			}
      echo "<p>Your order is: $estado </p>";
    }
    else { // Si no existen coincidencias:
      echo "<p>The entered code does not exists</p>";
    }
  }
  mysql_free_result($tabla);
  mysql_close($conexion);
?>
</body>
</html>

Pero no muestra nada :S

Y en forggot.php, me da un error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/fernando/public_html/pedidos/forggot.php on line 20

Y como no recuerdo si lo he tocado eheh, aqui está el codigo (Si ves que es igual lo dices y ahorro espacio borrandolo hehe)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
  $nombre= $_POST[nombre];
  $email= $_POST[email];
  if (!$nombre || !$email) {
    echo "All fields are required"; // Se comprueba antes de hacer cualquier cosa, así no se utilizan recursos extras sin razón.
  }
  else {
    // Conectamos a la base de datos 
    $connect=mysql_connect("localhost","fernando_usuario", "a1234b");
    // Seleccionamos la base de datos
    mysql_select_db("fernando_pedidos",$connect);
    $sql = "select * from fernando_pedidos where nombre = $nombre and email = $email";
    $resultados = mysql_fetch_array( mysql_query( $sql, $connect ) );
    echo "<p>" . $resultados['seguimiento'] . "</p>";
  }
?>
</body>
</html>

Linea 21:
echo "<p>" . $resultados['seguimiento'] . "</p>";
He de asumir que la columna estado de la base de datos tiene un valor tipo INT, ¿cierto?:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
$seguimiento= $_POST['seguimiento']; // añadí comillas simples alrededor de seguimiento.
if (!$seguimiento) {
echo "All fields are required";
}
  else 
  {
    $conexion = mysql_connect("localhost","fernando_usuario", "a1234b"); // se conecta con el servidor
    mysql_select_db('fernando_pedidos', $conexion); // selecciona la base de datos
    $sql = "SELECT seguimiento FROM pedidos WHERE seguimiento = $seguimiento"; // ¿La tabla pedidos existe? Si existe, ¿esta bien escrita? (también revisa las columnas).
    $tabla = mysql_query( $sql );

    if( $tabla ) { // Si existe alguna coincidencia se muestra el código (aunque creo que en base al código deberías mostrar el estado, no el mismo código XD).
      $registro = mysql_fetch_array( $tabla );
            $estado = "Pending";
            switch ($registro['estado'])
            {
              case 1: $estado = "Accepted"; break;
              case 2: $estado = "Cancelled"; break;
              case 3: $estado = "Looking"; break;
            }
      echo "<p>Your order is: $estado </p>";
    }
    else { // Si no existen coincidencias:
      echo "<p>The entered code does not exists or there has been an error:<br />" . mysql_error ( $conexion ) . "</p>"; // Agregué mysql_error ( $conexion );
    }
  }
  mysql_free_result( $tabla );
  mysql_close( $conexion );
?>
</body>
</html>

En cuanto al otro archivo. El error supplied argument is not a valid blah blah blah, siempre querrá decir que el parámetro que se pasó a la función mencionada no es el esperado por la función. En este caso, quiere decir que la función mysql_query() no ese ejecutó (se produjo un error) y por ende no se generó el tipo necesitado. Para rastrear errores, modifica el archivo para que quede así:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
  $nombre= $_POST[nombre];
  $email= $_POST[email];
  if (!$nombre || !$email) {
    echo "All fields are required"; // Se comprueba antes de hacer cualquier cosa, así no se utilizan recursos extras sin razón.
  }
  else {
    // Conectamos a la base de datos 
    $connect=mysql_connect("localhost","fernando_usuario", "a1234b");
    // Seleccionamos la base de datos
    mysql_select_db("fernando_pedidos",$connect);
    $sql = "select * from fernando_pedidos where nombre = $nombre and email = $email";
    $result = mysql_query( $sql ) or die ( "<p>Error al ejecutar consulta:<br />" . mysql_error( $connect ) .  "</p>" );
    $resultados = mysql_fetch_array( $result );
    echo "<p>" . $resultados['seguimiento'] . "</p>";
  }
?>
</body>
</html>

Avísame como te va.
Gracias de verdad por ayudarme hahaha.

Ok. Ahora, el codigo de show parece estar bien. Pero ponga lo que ponga en estado (Que si es int) Siempre sale pending.
¿No es por esto?
 $estado = "Pending";
            switch ($registro['estado'])
            {
              case 1: $estado = "Accepted"; break;
              case 2: $estado = "Cancelled"; break;
              case 3: $estado = "Looking"; break;
            }

Ahora, con el nuevo código de forggot, me apereze esto al meter los datos:

Error al ejecutar consulta:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com' at line 1
Hmmmm, a ver... Intenta lo siguiente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
$seguimiento= $_POST['seguimiento']; // añadí comillas simples alrededor de seguimiento.
if (!$seguimiento) {
echo "All fields are required";
}
  else 
  {
    $conexion = mysql_connect("localhost","fernando_usuario", "a1234b"); // se conecta con el servidor
    mysql_select_db('fernando_pedidos', $conexion); // selecciona la base de datos
    $sql = "SELECT seguimiento FROM pedidos WHERE seguimiento = $seguimiento"; // ¿La tabla pedidos existe? Si existe, ¿esta bien escrita? (también revisa las columnas).
    $tabla = mysql_query( $sql );

    if( $tabla ) { // Si existe alguna coincidencia se muestra el código (aunque creo que en base al código deberías mostrar el estado, no el mismo código XD).
      $registro = mysql_fetch_array( $tabla );
            $estado = "Pending";
            $reg = ( int )$registro['estado'];
            switch ( $reg )
            {
              case 1: $estado = "Accepted"; break;
              case 2: $estado = "Cancelled"; break;
              case 3: $estado = "Looking"; break;
            }
      echo "<p>Your order is: $estado </p>";
    }
    else { // Si no existen coincidencias:
      echo "<p>The entered code does not exists or there has been an error:<br />" . mysql_error ( $conexion ) . "</p>"; // Agregué mysql_error ( $conexion );
    }
  }
  mysql_free_result( $tabla );
  mysql_close( $conexion );
?>
</body>
</html>

En cuanto a forgot.php, intenta lo siguiente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
  $nombre= $_POST[nombre];
  $email= $_POST[email];
  if (!$nombre || !$email) {
    echo "All fields are required"; // Se comprueba antes de hacer cualquier cosa, así no se utilizan recursos extras sin razón.
  }
  else {
    // Conectamos a la base de datos 
    $connect=mysql_connect("localhost","fernando_usuario", "a1234b");
    // Seleccionamos la base de datos
    mysql_select_db("fernando_pedidos",$connect); // fernando_pedidos es la base de datos o la tabla. Si es la tabla, entonces esta lína esta mal, pero si es la base de datos, entonces
    // la línea siguiente esta mal (pues esta extrayendo los datos desde una base de datos y no desde una tabla)
    $sql = "select * from fernando_pedidos where nombre = '$nombre' and email = '$email'"; // Envonlví las variables entre comillas simples.
    $result = mysql_query( $sql ) or die ( "<p>Error al ejecutar consulta:<br />" . mysql_error( $connect ) .  "</p>" );
    $resultados = mysql_fetch_array( $result );
    echo "<p>" . $resultados['seguimiento'] . "</p>";
  }
?>
</body>
</html>
El error de forggot creo que estaba aqui:
 $sql = "select * from fernando_pedidos

Pues la tabla es pedidos haha
Forggot ya funciona :)

Ahora, show.php sigue viendose quiera o no Pending

A ver si conseguimos averiguar lo que pasa :)
(Gracias por tu ayuda, de verdad)
Ahora intenta mostrar el contenido de la variable $reg:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
$seguimiento= $_POST['seguimiento']; // añadí comillas simples alrededor de seguimiento.
if (!$seguimiento) {
echo "All fields are required";
}
  else 
  {
    $conexion = mysql_connect("localhost","fernando_usuario", "a1234b"); // se conecta con el servidor
    mysql_select_db('fernando_pedidos', $conexion); // selecciona la base de datos
    $sql = "SELECT seguimiento FROM pedidos WHERE seguimiento = $seguimiento"; // ¿La tabla pedidos existe? Si existe, ¿esta bien escrita? (también revisa las columnas).
    $tabla = mysql_query( $sql );

    if( $tabla ) { // Si existe alguna coincidencia se muestra el código (aunque creo que en base al código deberías mostrar el estado, no el mismo código XD).
      $registro = mysql_fetch_array( $tabla );
            $estado = "Pending";
            $reg = ( int )$registro['estado'];
            echo '<p style="color: red; font-size: 15px;">Valor reg: ' . $reg . '</p>';
            /*switch ( $reg )
            {
              case 1: $estado = "Accepted"; break;
              case 2: $estado = "Cancelled"; break;
              case 3: $estado = "Looking"; break;
            }
      echo "<p>Your order is: $estado </p>";*/
    }
    else { // Si no existen coincidencias:
      echo "<p>The entered code does not exists or there has been an error:<br />" . mysql_error ( $conexion ) . "</p>"; // Agregué mysql_error ( $conexion );
    }
  }
  mysql_free_result( $tabla );
  mysql_close( $conexion );
?>
</body>
</html>
Ahora el hosting / dominio da error y solo me deja meterme a la pagina principal...
En cuanto se pueda, reviso el codigo que me has dado :)
He hecho multitud de cambios, pero hay uno que no funciona :S.
		$sql = "select * from pedidos where estado='Awating' order by id"; 
    $result = mysql_query( $sql ) or die ( "<p>Error:<br />" . mysql_error( $connect ) .  "</p>" );
		while($resultados = mysql_fetch_array($result)) {
		$id= $resultados['id'];
    echo "<table style='margin:0px ; padding:0px ; border:1px solid #000000'><tr><td class='tabla'><p>ID</p></td>";
		echo "<td class='tabla'><p>Nombre</p></td>";
		echo "<td class='tabla'><p>Apellidos</p></td>";
		echo "<td class='tabla'><p>Email</p></td>";
		echo "<td class='tabla'><p>Direccion</p></td>";
		echo "<td class='tabla'><p>Telefono</p></td>";
		echo "<td class='tabla'><p>Eliminar pedido</p></td>";
		echo "<td class='tabla'><p>Actualizar pedido</p></td></tr>";
		echo "<tr><td class='tabla'><strong><p>" . $resultados['id'] . "</p></strong></td>";
		echo "<td class='tabla'><p>" . $resultados['nombre'] . "</p></td>";
		echo "<td class='tabla'><p>" . $resultados['apellidos'] . "</p></td>";
		echo "<td class='tabla'><p>" . $resultados['email'] . "</p></td>";
		$direccion= $_resultados['direccion'];
		$url= "<a href='http://maps.google.es/maps?q=$direccion'>";
		echo "<td class='tabla'><p>$direccion</a></p></td>";
		echo "<td class='tabla'><p>" . $resultados['telefono'] . "</p></td>";
		echo "<form action='delete.php' method='post'>";
		echo "<input type='hidden' value='$id' name='id'>";
		echo "<td class='tabla'><input type='submit' value='Eliminar pedido'></td>";
		echo "</form>";
		echo "<form action='refresh.php' method='post'>";
		echo "<td class='tabla'><input type='hidden' value='$id' name='id'>";
		echo "<select name='act' size='1'>";
		echo "<option value='Aceptted'>Aceptado</option>";
    echo "<option value='Cancelled'>Cancelado</option>";
    echo "<option value='Pending'>Revisando</option>";
    echo "</select>";
		echo "<input type='submit' value='Actualizar estado del pedido'></td>";
		echo "</form>";
		}
En (Linea 17 a 19):
		$direccion= $_resultados['direccion'];
		$url= "<a href='http://maps.google.es/maps?q=$direccion'>";
		echo "<td class='tabla'><p>$direccion</a></p></td>";
No se muestra el link... a que puede ser debido? :) Gracias de nuevo
Pues que muestras la variable $direccion en vez de $url supongo
$direccion= $_resultados['direccion'];
        $url= "<a href='http://maps.google.es/maps?q=$direccion'>";
        echo "<td class='tabla'><p>$[B][COLOR="red"]url[/COLOR][/B]</a></p></td>";
-.- DIOS MIO QUE TONTO SOY
:S . ¿Como no me habré dado cuenta antes?
Gracias Doodleo :)