Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

199
Vistas
tener 2 llamadas de función php
<?php select1($conn); function select2 ($conn,$id ,$name) { $stmt = $conn->prepare("SELECT def FROM define WHERE id = ?"); mysqli_stmt_bind_param($stmt, 'i', $id); $stmt->execute(); $stmt->bind_result($def); while($stmt->fetch()) { echo $def . “<br>” } $stmt->close(); } function select1 ($conn){ $stmt2 = $conn->prepare("SELECT id , name FROM words"); $stmt2->execute(); $stmt2->bind_result($id, $name); while($stmt2->fetch()) { select2 ($conn,$id ,$name); } } ?>

Tengo 2 funciones php para seleccionar datos de la base de datos. cada registro en palabras tiene múltiples registros en la tabla definida que necesito seleccionar. La primera función está funcionando correctamente. el problema es que la segunda función no funciona.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Como menciona @u_mulder, tiene comillas dobles incorrectas en uso.

Correcto:

$stmt = $conn->prepare("SELECT def FROM define WHERE id = ?");

Incorrecto:

$stmt2 = $conn->prepare("SELECT id , name FROM words”);

El carácter ” no es lo mismo que el carácter " . Esto causará un problema en su consulta. Ver más: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html

Limpiado:

 <?php select1($conn); function select2($conn, $id, $name){ $stmt = $conn->prepare("SELECT def FROM define WHERE id = ?"); $stmt->bind_param('i', $id); $stmt->execute(); $stmt->bind_result($def); while($stmt->fetch()) { echo $def . "<br>" } $stmt->close(); } function select1 ($conn){ $stmt2 = $conn->prepare("SELECT id, name FROM words"); $stmt2->execute(); $stmt2->bind_result($id, $name); while($stmt2->fetch()) { select2($conn, $id, $name); } } ?>

Luego de una inspección adicional, no veo dónde usa $id o $name , por lo que no estoy seguro de por qué está realizando 2 consultas. Aconsejaría una consulta de unión.

 <?php function select1 ($conn){ $stmt = $conn->prepare("SELECT w.id, w.name, d.define FROM words AS w INNER JOIN define AS d ON w.id = d.id"); $stmt->execute(); $stmt->bind_result($id, $name, $def); while($stmt->fetch()) { echo "($id) $name $def<br />"; } } ?>

Actualizar

Si tienes words de tabla:

 +----+--------+ | id | name | +----+--------+ | 1 | 'John' | | 2 | 'Mary' | | 3 | 'Bob' | +----+--------+

Y la tabla define :

 +----+--------------+ | id | def | +----+--------------+ | 1 | 'Some stuff' | | 1 | 'Other stuff'| | 1 | 'More stuff' | | 2 | 'Weird stuff'| | 2 | 'Kind stuff' | | 3 | 'Just stuff' | +----+--------------+

Nos referimos a esto: ¿Cuál es la diferencia entre "INNER JOIN" y "OUTER JOIN"?

La consulta podría ser una unión regular:

 SELECT a.id, a.name, b.def FROM word AS a JOIN define AS b ON a.id = b.id;

El conjunto de resultados debe ser:

 +----+--------+--------------+ | id | name | def | |----|--------|--------------| | 1 | 'John' | 'Some stuff' | | 1 | 'John' | 'Other stuff'| | 1 | 'John' | 'More stuff' | | 2 | 'Mary' | 'Weird stuff'| | 2 | 'Mary' | 'Kind stuff' | | 3 | 'Bob' | 'Just stuff' | +----+--------+--------------+

Espero que esto ayude a explicar tus opciones.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda